package com.xoa.model.hr;

import com.alibaba.fastjson.annotation.JSONField;
import com.xoa.model.common.SysCode;
import com.xoa.model.enclosure.Attachment;
import org.springframework.format.annotation.DateTimeFormat;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

/**
 * 创建作者:   高亚峰
 * 创建日期:   2017/7/13 15:58
 * 类介绍 :   合同model
 * 构造参数:
 */
public class HrStaffContract {
    // 自动递增的Id
    private Integer contractId;
    //创建者用户名
    private String createUserId;
    //创建者部门编号
    private Integer createDeptId;
    //姓名
    private String staffName;
    //合同编号
    private String staffContractNo;
    //合同类型
    private String contractType;
    // 合同类型名称
    private String contractTypeName;
    //合同属性(1-有固定期限,2-无固定期限)
    private String contractSpecialization;
    //合同签约时间
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date makeContract;
    //试用生效日期
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date trailEffectiveTime;
    //试用期限
    private String probationaryPeriod;
    //试用到期时间
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date trailOverTime;
    //合同是否转正(0-不转正,1-转正)
    private String passOrNot;
    //合同转正日期
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date probationEndDate;
    //合同生效日期
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date probationEffectiveDate;
    //合同期限
    private String activePeriod;
    //合同到期日期
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date contractEndTime;
    //备注
    private String remark;
    //合同是否解除(0-不解除,1-解除)
    private String removeOrNot;
    //合同解除日期
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date contractRemoveTime;
    //合同状态
    private String status;
    //签约次数
    private String SingTimes;
    //附件编号
    private String attachmentId;
    //附件名称
    private String attachmentName;
    //登记时间
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date addTime;
    //最后修改时间
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Date lastUpdateTime;
    //合同到期提醒时间
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat( pattern = "yyyy-MM-dd" )
    private Timestamp remindTime;
    //合同的甲方
    private String staffUserName;
    //提醒人员
    private String remindUser;
    private String remindUserName;
    //提醒方式
    private Integer remindType;
    //是否已经提醒(0-未提醒,1-已提醒)
    private Integer hasReminded;
    //合同续签时间
    private String renewTime;
    //合同签约公司
    private String contractEnterpries;
    // 合同签约公司名称
    private String contractEnterpriesName;
    //合同是否试用(0-不试用,1-试用)
    private String isTrial;
    //合同是否续签(0-不续签,1-续签)
    private String isRenew;
    //对应USER表BYNAME
    private String userName;
    //部门名称
    private String deptName;
    //岗位ID
    private Integer jobId;
    //岗位名称
    private String jobName;
    //职务Id
    private Integer postId;
    //职务名称
    private String postName;
    //角色
    private String UserPrivName;
    // 角色
    private String userPriv;



    //附件集合
    List<Attachment> attachmentList;

    private SysCode codes;

    public SysCode getCodes() {
        return codes;
    }

    public void setCodes(SysCode codes) {
        this.codes = codes;
    }

    public HrStaffContract(Integer contractId, String createUserId, Integer createDeptId, String staffName, String staffContractNo, String contractType, String contractSpecialization, Date makeContract, Date trailEffectiveTime, String probationaryPeriod, Date trailOverTime, String passOrNot, Date probationEndDate, Date probationEffectiveDate, String activePeriod, Date contractEndTime, String remark, String removeOrNot, Date contractRemoveTime, String status, String singTimes, String attachmentId, String attachmentName, Date addTime, Date lastUpdateTime, Timestamp remindTime, String staffUserName, String remindUser, Integer remindType, Integer hasReminded, String renewTime, String contractEnterpries, String isTrial, String isRenew, String userName, String deptName, String postName, String userPrivName) {
        this.contractId = contractId;
        this.createUserId = createUserId;
        this.createDeptId = createDeptId;
        this.staffName = staffName;
        this.staffContractNo = staffContractNo;
        this.contractType = contractType;
        this.contractSpecialization = contractSpecialization;
        this.makeContract = makeContract;
        this.trailEffectiveTime = trailEffectiveTime;
        this.probationaryPeriod = probationaryPeriod;
        this.trailOverTime = trailOverTime;
        this.passOrNot = passOrNot;
        this.probationEndDate = probationEndDate;
        this.probationEffectiveDate = probationEffectiveDate;
        this.activePeriod = activePeriod;
        this.contractEndTime = contractEndTime;
        this.remark = remark;
        this.removeOrNot = removeOrNot;
        this.contractRemoveTime = contractRemoveTime;
        this.status = status;
        SingTimes = singTimes;
        this.attachmentId = attachmentId;
        this.attachmentName = attachmentName;
        this.addTime = addTime;
        this.lastUpdateTime = lastUpdateTime;
        this.remindTime = remindTime;
        this.staffUserName = staffUserName;
        this.remindUser = remindUser;
        this.remindType = remindType;
        this.hasReminded = hasReminded;
        this.renewTime = renewTime;
        this.contractEnterpries = contractEnterpries;
        this.isTrial = isTrial;
        this.isRenew = isRenew;
        this.userName = userName;
        this.deptName = deptName;
        this.postName = postName;
        UserPrivName = userPrivName;
    }

    public HrStaffContract() {
    }

    public Integer getContractId() {
        return contractId;
    }

    public void setContractId(Integer contractId) {
        this.contractId = contractId==null?0:contractId;
    }

    public String getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId==null? "" :createUserId.trim();
    }

    public List<Attachment> getAttachmentList() {
        return attachmentList;
    }

    public void setAttachmentList(List<Attachment> attachmentList) {
        this.attachmentList = attachmentList;
    }

    public Integer getCreateDeptId() {
        return createDeptId;
    }

    public void setCreateDeptId(Integer createDeptId) {
        this.createDeptId = createDeptId==null?0:createDeptId;
    }

    public String getStaffName() {
        return staffName==null?"":staffName;
    }

    public void setStaffName(String staffName) {
        this.staffName = staffName==null? "" : staffName.trim();
    }

    public String getStaffContractNo() {
        return staffContractNo;
    }

    public void setStaffContractNo(String staffContractNo) {
        this.staffContractNo =staffContractNo==null ? "" : staffContractNo.trim();
    }

    public String getContractType() {
        return contractType;
    }

    public void setContractType(String contractType) {
        this.contractType = contractType==null? "" :contractType.trim();
    }

    public String getContractSpecialization() {
        return contractSpecialization;
    }

    public void setContractSpecialization(String contractSpecialization) {
        this.contractSpecialization = contractSpecialization==null? "" :contractSpecialization.trim();
    }

    public Date getMakeContract() {
        return makeContract;
    }

    public void setMakeContract(Date makeContract) {
        this.makeContract = makeContract;
    }

    public Date getTrailEffectiveTime() {
        return trailEffectiveTime;
    }

    public void setTrailEffectiveTime(Date trailEffectiveTime) {
        this.trailEffectiveTime = trailEffectiveTime;
    }

    public String getProbationaryPeriod() {
        return probationaryPeriod==null?"":probationaryPeriod;
    }

    public void setProbationaryPeriod(String probationaryPeriod) {
        this.probationaryPeriod = probationaryPeriod==null? "" :probationaryPeriod.trim();
    }

    public Date getTrailOverTime() {
        return trailOverTime;
    }

    public void setTrailOverTime(Date trailOverTime) {
        this.trailOverTime = trailOverTime;
    }

    public String getPassOrNot() {
        return passOrNot;
    }

    public void setPassOrNot(String passOrNot) {
        this.passOrNot = passOrNot==null? "" :passOrNot.trim();
    }

    public Date getProbationEndDate() {
        return probationEndDate;
    }

    public void setProbationEndDate(Date probationEndDate) {
        this.probationEndDate = probationEndDate;
    }

    public Date getProbationEffectiveDate() {
        return probationEffectiveDate;
    }

    public void setProbationEffectiveDate(Date probationEffectiveDate) {
        this.probationEffectiveDate = probationEffectiveDate;
    }

    public String getActivePeriod() {
        return activePeriod==null? "" :activePeriod.trim();
    }

    public void setActivePeriod(String activePeriod) {
        this.activePeriod = activePeriod==null? "" :activePeriod.trim();
    }

    public Date getContractEndTime() {
        return contractEndTime;
    }

    public void setContractEndTime(Date contractEndTime) {
        this.contractEndTime = contractEndTime;
    }

    public String getRemark() {
        return remark==null? "" :remark.trim();
    }

    public void setRemark(String remark) {
        this.remark = remark==null? "" :remark.trim();
    }

    public String getRemoveOrNot() {
        return removeOrNot==null? "" :removeOrNot.trim();
    }

    public void setRemoveOrNot(String removeOrNot) {
        this.removeOrNot = removeOrNot==null? "" :removeOrNot.trim();
    }

    public Date getContractRemoveTime() {
        return contractRemoveTime;
    }

    public void setContractRemoveTime(Date contractRemoveTime) {
        this.contractRemoveTime = contractRemoveTime;
    }

    public String getStatus() {
        return status==null?"":status.trim();
    }

    public void setStatus(String status) {
        this.status = status==null?"":status.trim();
    }

    public String getSingTimes() {
        return SingTimes==null? "" :SingTimes.trim();
    }

    public void setSingTimes(String singTimes) {
        SingTimes = singTimes==null? "" :singTimes.trim();
    }

    public String getAttachmentId() {
        return attachmentId==null?"":attachmentId.trim();
    }

    public void setAttachmentId(String attachmentId) {
        this.attachmentId =attachmentId==null? "" :attachmentId.trim();
    }

    public String getAttachmentName() {
        return attachmentName==null?"":attachmentName.trim();
    }

    public void setAttachmentName(String attachmentName) {
        this.attachmentName = attachmentName==null?"":attachmentName.trim();
    }

    public Date getAddTime() {
        return addTime;
    }

    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public Timestamp getRemindTime() {
        return remindTime == null?new Timestamp(0):remindTime;
    }

    public void setRemindTime(Timestamp remindTime) {
        this.remindTime = remindTime;
    }

    public String getStaffUserName() {
        return staffUserName==null? "" :staffUserName.trim();
    }

    public void setStaffUserName(String staffUserName) {
        this.staffUserName = staffUserName==null? "" :staffUserName.trim();
    }

    public String getRemindUser() {
        return remindUser==null? "" :remindUser.trim();
    }

    public void setRemindUser(String remindUser) {
        this.remindUser = remindUser==null? "" :remindUser.trim();
    }

    public Integer getRemindType() {
        return remindType;
    }

    public void setRemindType(Integer remindType) {
        this.remindType = remindType==null?0:remindType;
    }

    public Integer getHasReminded() {
        return hasReminded;
    }

    public void setHasReminded(Integer hasReminded) {
        this.hasReminded = hasReminded==null?0:hasReminded;
    }

    public String getRenewTime() {
        return renewTime;
    }

    public void setRenewTime(String renewTime) {
        this.renewTime = renewTime==null? "" :renewTime;
    }

    public String getContractEnterpries() {
        return contractEnterpries;
    }

    public void setContractEnterpries(String contractEnterpries) {
        this.contractEnterpries = contractEnterpries==null?"":contractEnterpries.trim();
    }

    public String getIsTrial() {
        return isTrial;
    }

    public void setIsTrial(String isTrial) {
        this.isTrial = isTrial==null? "" :isTrial.trim();
    }

    public String getIsRenew() {
        return isRenew;
    }

    public void setIsRenew(String isRenew) {
        this.isRenew = isRenew==null? "" :isRenew.trim();
    }

    public String getUserName() {
        return userName==null?"":userName;
    }


    public void setUserName(String userName) {
        this.userName = userName==null? "" :userName.trim();
    }


    public String getDeptName() {
        return deptName==null?"":deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getPostName() {
        return postName==null?"":postName;
    }

    public void setPostName(String postName) {
        this.postName = postName;
    }

    public String getUserPrivName() {
        return UserPrivName;
    }

    public void setUserPrivName(String userPrivName) {
        UserPrivName = userPrivName;
    }

    public String getUserPriv() {
        return userPriv;
    }

    public void setUserPriv(String userPriv) {
        this.userPriv = userPriv;
    }

    public String getContractTypeName() {
        return contractTypeName==null?"":contractTypeName;
    }

    public void setContractTypeName(String contractTypeName) {
        this.contractTypeName = contractTypeName;
    }

    public String getContractEnterpriesName() {
        return contractEnterpriesName==null?"":contractEnterpriesName;
    }

    public void setContractEnterpriesName(String contractEnterpriesName) {
        this.contractEnterpriesName = contractEnterpriesName;
    }

    public String getRemindUserName() {
        return remindUserName;
    }

    public void setRemindUserName(String remindUserName) {
        this.remindUserName = remindUserName;
    }

    int nums;

    public int getNums() {
        return nums;
    }

    public void setNums(int nums) {
        this.nums = nums;
    }

    String statusName;

    public String getStatusName() {
        return statusName;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    String ContractSpecializationName;

    public String getContractSpecializationName() {
        return ContractSpecializationName;
    }

    public void setContractSpecializationName(String contractSpecializationName) {
        ContractSpecializationName = contractSpecializationName;
    }

    String makeContractDate;

    public String getMakeContractDate() {
        return makeContractDate;
    }

    public void setMakeContractDate(String makeContractDate) {
        this.makeContractDate = makeContractDate;
    }

    public Integer getJobId() {
        return jobId;
    }

    public void setJobId(Integer jobId) {
        this.jobId = jobId;
    }

    public String getJobName() {
        return jobName;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    public Integer getPostId() {
        return postId;
    }

    public void setPostId(Integer postId) {
        this.postId = postId;
    }
}
